﻿//--------------------------------------------------------------------------
// 
//  Copyright (c) Chili Software.  All rights reserved. 
// 
//  File: ILinqQuery.cs
//
//  Description: Interface that is implemented by LinqQuery<T>.
// 
//--------------------------------------------------------------------------

using System;
using Chili.Opf3.Query;

namespace Chili.Opf3.Linq
{
	/// <summary>
	/// This interface is implemented by the <see cref="LinqQuery{T}">LinqQuery</see>
	/// to allow classes to interact with the query without knowledge of the generic
	/// argument.
	/// </summary>
	internal interface ILinqQuery : IQuery
	{
		/// <summary>
		/// Gets the expressions of the query.
		/// </summary>
		ExpressionsBag Expressions
		{
			get;
		}

		/// <summary>
		/// Gets the persistent type that's going to be the fetched by the query.
		/// </summary>
		Type PersistentType
		{
			get;
		}

		/// <summary>
		/// Gets the associated <see cref="ObjectContext">ObjectContext</see>.
		/// </summary>
		ObjectContext Context
		{
			get;
		}
	}
}
